#include <iostream>
using namespace std;

class point
{

    int x;
    int y;

public:
    point(int m_x, int m_y) : x(m_x), y(m_y){};
    point &operator+=(const point &m_point) //可以允许被赋值（能否允许被赋值是看是否会返回，不是临时对象，比如b+=a;会返回b），所以返回值不是const.
                                            // 其次对象的数据成员x和y的值会改变，所以函数不能是常函数

    {
        x += m_point.x;
        y += m_point.y;
        return *this;
    }
    void display()
    {
        cout << x << y << endl;
    }
};

int main()
{
    point p1(2, 4);
    point p2(1, 3);
    p2 += p1;

    p2.display();
    (p2 += p1) = point(20, 20); //可以允许被赋值，所以返回值不是const.   其次x和y的值会改变，所以函数不能是常函数
    p2.display();
    return 0;
}
